// 时间工具函数

/**
 * 获取北京时间字符串
 * @param {Date} date - 可选的日期对象，默认为当前时间
 * @returns {string} 北京时间字符串
 */
function getBeijingTime(date = new Date()) {
  return date.toLocaleString('zh-CN', {
    timeZone: 'Asia/Shanghai'
  });
}

/**
 * 获取格式化的北京时间字符串（用于显示）
 * @param {Date} date - 可选的日期对象，默认为当前时间
 * @returns {string} 格式化的北京时间字符串
 */
function getFormattedBeijingTime(date = new Date()) {
  return date.toLocaleString('zh-CN', {
    year: 'numeric',
    month: '2-digit',
    day: '2-digit',
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit',
    timeZone: 'Asia/Shanghai'
  }).replace(/\//g, '-');
}

/**
 * 将时间字符串转换为北京时间
 * @param {string|Date} time - 时间字符串或Date对象
 * @returns {string} 北京时间字符串
 */
function convertToBeijingTime(time) {
  if (!time) return '';
  const date = new Date(time);
  return getBeijingTime(date);
}

module.exports = {
  getBeijingTime,
  getFormattedBeijingTime,
  convertToBeijingTime
};
